const obj1 = {
  a: 3,
  b: 4,
  c: {
    x: 10,
    y: 20,
  },
  d() {},
  e: undefined,
};

// todo 这个不是浅拷贝，是赋值
// const obj2 = obj1;
// obj1.a = 5;
// console.log(obj2);

// todo 浅拷贝
// const obj2 = { ...obj1 };
// const obj2 = Object.assign({}, obj1);
// obj1.a = 5;
// console.log(obj2);

// [...arr] [].concat(arr)

// todo 如果对象不止一层，浅拷贝不能解决问题
// todo 用到深拷贝
// const obj2 = JSON.parse(JSON.stringify(obj1));
// obj1.c.x = 100;
// console.log(obj2);

// todo 使用递归
// todo 使用lodash的cloneDeep方法
